package com.ethink.warehouse.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.warehouse.api.info.MateInventoryCxLogModeInfo;
import com.ethink.warehouse.api.request.*;
import com.ethink.warehouse.api.response.MateInventoryCxLogAddResponse;
import com.ethink.warehouse.api.response.MateInventoryCxLogGetDetailResponse;
import com.ethink.warehouse.api.response.MateInventoryCxLogQueryResponse;

/**
 * 库存拆卸记录 Service接口
 *
 * @author default
 * @date 2022-12-07
 */
public interface MateInventoryCxLogService {

    /**
     * 分页查询
     *
     * @param request
     * @return
     */
    Page<MateInventoryCxLogQueryResponse> queryMateInventoryCxLog(MateInventoryCxLogQueryRequest request);

    /**
     * 查询详情
     *
     * @param mateInventoryCxLogId
     * @return
     */
    MateInventoryCxLogGetDetailResponse getMateInventoryCxLogById(Long mateInventoryCxLogId);


    /**
     * 新增
     *
     * @param request
     * @return
     */
    MateInventoryCxLogAddResponse addMateInventoryCxLog(MateInventoryCxLogAddRequest request);

    /**
     * 修改
     *
     * @param request
     * @return
     */
    void updateMateInventoryCxLog(MateInventoryCxLogUpdateRequest request);

    /**
     * 审核通过
     *
     * @param request
     */
    void approvedMateInventoryCxLog(MateInventoryCxLogApprovedRequest request);

    /**
     * 删除
     *
     * @param mateInventoryCxLogId
     * @return
     */
    void deleteMateInventoryCxLog(Long mateInventoryCxLogId);

    /**
     * 货品模式
     *
     * @param request
     * @return
     */
    Page<MateInventoryCxLogModeInfo> queryMateInventoryCxLogMode(MateInventoryCxLogModeQueryRequest request);

}